package vistasCasaCentral;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import tp_ad.RMIClient.RMIClientCSR;
import tp_ad.bean.CondicionBean;
import tp_ad.bean.ProveedorBean;
import tp_ad.bean.TipoProveedorBean;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class JFrameUpdateProveedor extends javax.swing.JInternalFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private static final long serialVersionUID = 1L;
	private JTextField txtCUIT;
	private JTextField txtRazonSocial;
	private JLabel lblCUIT;
	private JLabel lblCondicion;
	private JLabel lblTipo;
//	private JTextField txtTelefono;
//	private JTextField txtContacto;
	private JComboBox jComboBoxTipo;
	private JComboBox jComboBoxCondicion;
	private JButton btnAceptar;
	private JButton jButton1;
	private JButton btnCancelar;
	private JLabel lblNombre;
	private JLabel lblPorcDto;
	private JTextField txtPorcentajeDescuento;
	private static JFrameUpdateProveedor instancia; 
	
	/**
	* Auto-generated main method to display this 
	* JInternalFrame inside a new JFrame.
	*/
	
	public static JFrameUpdateProveedor getInstancia(){
		if (instancia==null){
			instancia = new JFrameUpdateProveedor();
		}
		return instancia;
	}
		
	public JFrameUpdateProveedor() {
		super();
		initGUI();
	}
	
	
	 public void cargarCondiciones (){
	        List<CondicionBean> condsBean= RMIClientCSR.getInstancia().cargarComboCondiciones();
	        for (CondicionBean condBean:condsBean){
	            this.jComboBoxCondicion.addItem(condBean.getDescripcion());
	        }
	    }
	    
	    public void cargarTipoProveedores (){
	        List<TipoProveedorBean> tiposBean= RMIClientCSR.getInstancia().cargarComboTipoProveedores();
	        for (TipoProveedorBean tipoBean:tiposBean){
	            this.jComboBoxTipo.addItem(tipoBean.getDescripcion());
	        }
	    }
	
	private void initGUI() {
		try {
			this.setPreferredSize(new java.awt.Dimension(400, 296));
			this.setBounds(0, 0, 400, 296);
			setVisible(true);
			this.setTitle("Modificacion Proveedor");
			getContentPane().setLayout(null);
			{
				txtPorcentajeDescuento = new JTextField();
				getContentPane().add(txtPorcentajeDescuento);
				txtPorcentajeDescuento.setBounds(189, 112, 166, 21);
			}
			{
				lblPorcDto = new JLabel();
				getContentPane().add(lblPorcDto);
				lblPorcDto.setText("Porcentaje Descuento");
				lblPorcDto.setBounds(26, 116, 151, 14);
			}			
			{
				ComboBoxModel jComboBoxTipoModel = 
						new DefaultComboBoxModel(
								new String[] {});
				jComboBoxTipo = new JComboBox();
				getContentPane().add(jComboBoxTipo);
				jComboBoxTipo.setModel(jComboBoxTipoModel);
				jComboBoxTipo.setBounds(189, 177, 166, 21);
			}				
			{
				ComboBoxModel jComboBox1Model = 
						new DefaultComboBoxModel(
								new String[] {});
				jComboBoxCondicion = new JComboBox();
				getContentPane().add(jComboBoxCondicion);
				jComboBoxCondicion.setModel(jComboBox1Model);
				jComboBoxCondicion.setBounds(189, 144, 166, 21);
			}		
			{
				txtCUIT = new JTextField();
				getContentPane().add(txtCUIT);
				txtCUIT.setBounds(149, 12, 222, 21);
				txtCUIT.setText("Ingrese CUIT de proveedor a modificar");
			}
			{
				txtRazonSocial = new JTextField();
				getContentPane().add(txtRazonSocial);
				txtRazonSocial.setBounds(189, 83, 166, 21);
			}
			{
				lblTipo = new JLabel();
				getContentPane().add(lblTipo);
				lblTipo.setText("Tipo Proveedor");
				lblTipo.setBounds(26, 181, 151, 14);
			}
			{
				lblCondicion = new JLabel();
				getContentPane().add(lblCondicion);
				lblCondicion.setText("Condicion");
				lblCondicion.setBounds(26, 148, 151, 14);
			}
			{
				lblCUIT = new JLabel();
				getContentPane().add(lblCUIT);
				lblCUIT.setText("CUIT: ");
				lblCUIT.setBounds(73, 15, 73, 14);
			}
			{
				lblNombre = new JLabel();
				getContentPane().add(lblNombre);
				lblNombre.setText("Razon Social");
				lblNombre.setBounds(26, 87, 151, 14);
			}
			cargarCondiciones();	
			cargarTipoProveedores();
			{
				btnAceptar = new JButton();
				getContentPane().add(btnAceptar);
				btnAceptar.setText("Cargar Proveedor");
				btnAceptar.setBounds(229, 45, 126, 21);
				btnAceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						ProveedorBean proveedorBean = RMIClientCSR.getInstancia().buscarProveedor(txtCUIT.getText());
						if(proveedorBean.getCuit()!=null && !"".equalsIgnoreCase(proveedorBean.getCuit())){							
							txtPorcentajeDescuento.setText(String.valueOf(proveedorBean.getPorcentajeDesc()));
							txtRazonSocial.setText(proveedorBean.getRazonSocial());
//							txtContacto.setText(beanCliente.getContacto()); 
//							txtTelefono.setText(beanCliente.getTelefono()); 
							jComboBoxCondicion.setSelectedItem(proveedorBean.getCondicion()); //COMBO CONDICION
							jComboBoxTipo.setSelectedItem(proveedorBean.getTipo()); //COMBO TIPO
							txtCUIT.setEditable(false);
						}else{
							JOptionPane.showMessageDialog(JFrameUpdateProveedor.getInstancia(),"Proveedor Inexistente");
						}
					}
				});
			}
			{
				btnCancelar = new JButton();
				getContentPane().add(btnCancelar);
				btnCancelar.setText("Cancelar");
				btnCancelar.setBounds(209, 216, 107, 26);
				btnCancelar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						dispose();
					}
				});
			}
			{
				jButton1 = new JButton();
				getContentPane().add(jButton1, "Center");
				jButton1.setText("Aceptar");
				jButton1.setBounds(73, 216, 98, 26);
				jButton1.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						txtCUIT.setEditable(true);
						ProveedorBean proveedorBean = new ProveedorBean();
//						beanCliente.setContacto(txtContacto.getText());
						proveedorBean.setCuit(txtCUIT.getText());
						proveedorBean.setRazonSocial(txtRazonSocial.getText());
//						beanCliente.setTelefono(txtTelefono.getText());
						cargarTipoProveedorSearch(proveedorBean);							
						cargarCondicionSearch(proveedorBean);
						Float pjeDto = new Float("0");
						try{pjeDto = Float.parseFloat(txtPorcentajeDescuento.getText());}catch(Exception e){JOptionPane.showMessageDialog(JFrameAltaProveedor.getInstancia(),"Porcentaje debe ser un numero");return;}
						if(pjeDto>100 || pjeDto<0){
							JOptionPane.showMessageDialog(JFrameUpdateProveedor.getInstancia(),"Porcentaje debe ser un numero entre 0 y 100");
							return;
						}
						proveedorBean.setPorcentajeDesc(pjeDto);
						if(RMIClientCSR.getInstancia().updateProveedor(proveedorBean)){
							JOptionPane.showMessageDialog(JFrameUpdateProveedor.getInstancia(),"El proveedor fue modificado exitosamente");
							dispose();
						}else{
							JOptionPane.showMessageDialog(JFrameUpdateProveedor.getInstancia(),"El proveedor no fue modificado. Hubo un error");
						}
							
					}
				});
			}
			pack();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void cargarTipoProveedorSearch(ProveedorBean proveedorBean){
		String tipo = ((String)jComboBoxTipo.getSelectedItem());					
		proveedorBean.setTipo(tipo.substring(0));
	}

	private void cargarCondicionSearch(ProveedorBean proveedorBean){
		String cond = ((String)jComboBoxCondicion.getSelectedItem());
		proveedorBean.setCondicion(cond.substring(0));
	}

}
